package com.bjpowernode.dao;

import com.bjpowernode.entity.Student;
import com.bjpowernode.vo.QueryParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author shentianyu
 * @date 2020-07-06 19:24
 */
public interface StudentDao {

    List<Student> selectStudents();

    int insertStudent(Student student);

    /**
     * 一个简单类型的参数
     *  简单类型：mybatis把java的基本数据类型和String都叫做简单类型
     *
     *  在mapper文件获取一个简单类型的参数的值，使用#{任意字符}
     *
     */
    public Student selectStudentById(Integer id);

    /**
     * 实现多个参数：命名参数，在形参定义前面加上@Param("自定义参数名称")
     *
     */
    List<Student> selectMultiParam(@Param("myname") String name, @Param("myage") Integer age);

    /**
     * 多个参数，使用java对象作为接口中方法的参数
     */
    List<Student> selectMultiObject(QueryParam param);

    int countStudents();

    //定义方法返回Map
    Map<Object,Object> selectReturnMap(@Param("id")Integer id);

    /*
        使用resultMap定义映射关系
     */
    List<Student> selectAllStudents();
}
